package com.hyt.it.ogt.kq.service.gov.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hyt.it.ogt.kq.service.gov.model.dto.TaskTimeSubjectArrangeDTO;
import com.hyt.it.ogt.kq.service.gov.model.vo.TaskTimeSubjectArrangeVO;
import com.hyt.it.ogt.kq.service.model.entity.Subject;
import com.hyt.it.ogt.kq.service.model.vo.candidateSubject.OverviewBmSubjectVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 科目信息表 Mapper 接口
 * </p>
 *
 * @author huangyh
 * @since 2021-03-08
 */
public interface SubjectMapper extends BaseMapper<Subject> {

    /**
     * 根据科目id获取科目编号
     * @param subjectIdList 科目id的List
     * @param taskId 考试任务id
     * @return 科目编号List
     */
    List<String> getSubjectCodeById(@Param("subjectIdList")List<String> subjectIdList, @Param("taskId")String taskId);
    
    /**
	 * 查询科目报名人数统计数据
	 * @param taskId
	 * @return
	 */
	List<OverviewBmSubjectVO> getBmSubjectVO(String taskId);

	/**
	 * 根据批次科目id获取科目数据
	 * @param timeSubjectId 批次科目id
	 * @return 科目数据
	 */
	Subject getByTimeSubjectId(String timeSubjectId);

	/**
	 * 查询批次已经选择的科目
	 * @param param
	 * @return
	 */
    List<TaskTimeSubjectArrangeVO> taskTimeSubjectArrange(@Param("param") TaskTimeSubjectArrangeDTO param);

	/**
	 * 查询批次没有经选择的科目
	 * @param param
	 * @return
	 */
	List<TaskTimeSubjectArrangeVO> taskTimeSubjectArrangeNotSelected(@Param("param") TaskTimeSubjectArrangeDTO param);
}
